﻿using Nemerle.Collections;
using Nemerle.Text;
using Nemerle.Utility;

using System;
using System.Collections.Generic;
using System.Linq;

namespace TestAssembly
{
  /// <summary>
  /// Description of MethodTests.
  /// </summary>
  public class MethodTestsClass
  {
    public this(_ : int) {}
    public this(_ : string) {}
    public SimpleMethodWithoutParams() : void {}
    public static StaticMethod(_ : int) : string { "" }

    public MethodWithArray(_ : array[array[string]]) : void {}
    public MethodWithFunc (_ : int -> int) : void {}
    public HeavyMethod (_x : int -> int, _y : list[string], _z : Seq[MethodTestsClass], params _zz : array[Func[int,string]]) : int * MethodTestsClass { (0,null) }

    [Obsolete]
    public ObsoleteMethod() : void {}
  }

  public module MethodTestsStaticClass
  {
    public ExtensionMethod(this _self : MethodTestsClass) : void {}
  }
}
